跳到主要内容

编写脚本

AREX 通过脚本(JavaScript代码片段)可实现在接口请求或集合测试时添加动态行为。

脚本可实现的功能

  1. 测试(断言)请求返回结果的正确性(后置脚本/test script)。
  2. 动态修改接口请求参数,如增加接口签名参数等(前置脚本/pre-request script)。
  3. 接口请求之间传递数据(使用脚本操作变量)。

以下两个环节可添加脚本:

  1. 在将请求发送到服务器之前,使用前置脚本。
  2. 收到响应后,使用后置脚本(断言测试)。

脚本运行顺序

对于单个请求来说,脚本运行顺序如下:

  1. 前置脚本将在请求发送前执行。
  2. 后置脚本将在请求发送后执行。

前置脚本

接口前置脚本

  1. 打开一个请求,进入 Pre-request Script 标签页。

  2. 点击 Pre-request Script 标签中 Add Script Block,为请求添加前置脚本。

  3. 点击 Send 发送请求,该脚本将在请求发送到接口前执行。

请求添加前置脚本

后置脚本

后置脚本是在请求发送完成后执行的代码片段。主要用来断言请求返回的结果是否正确,并可以将请求返回的结果数据写入环境变量等。

接口后置脚本

  1. 打开一个请求,进入 Tests 标签页。

    添加后置脚本

  2. 点击 Add Script Block,为请求添加前置脚本。

  3. 点击 Send 发送请求,该脚本将在请求发送到接口后执行。

  4. 运行后,在 Result 中查看断言结果:

    断言结果

使用场景

1. 使用变量

环境变量

// 设置环境变量 
pm.environment.set("variable_key", "variable_value");

// 获取环境变量
pm.environment.get("variable_key");

// 删除环境变量
pm.environment.delete("variable_key");

临时变量

// 设置临时变量
pm.variables.set("variable_key", "variable_value")

// 获取临时变量
pm.variables.get("variable_key")

// 删除临时变量
pm.variables.delete("variable_key")

2. 发送接口请求

发送 GET 请求

let response = await pm.sendRequest({method:"GET",url:"http://10.5.153.1:8090/api/config/schedule/useResult/appId/arex-0.2.4.test2"});

发送 POST 请求

let response = await pm.sendRequest({url:"http://10.5.153.1:8088/api/report/queryDifferences",method:"POST",data:"{"categoryName":"ServletEntrance","operationName":"/owners/{ownerId}","planItemId":"633184edc9af0157f44eaeba"}",headers:{"Content-Type":"application/json","access-token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbmZvIjoidGVzdCJ9.YeLmUW--fqrtmag1QTDmL8U7RVZlb34xPAAxorxSCPM"}});

3. 断言请求返回的结果是否正确:

// 设置断言,判断响应状态码是否为 200
pm.test("Status code is 200", ()=> {
pm.expect(pm.response.status).toBe(200);
});

//示例:验证响应结果中的 age 属性是否等于 18
pm.test("Check JSON response property", ()=> {
pm.expect(pm.response.body.age).toBe(18);
});